package com.usdt.common.core.domain.entity;

import java.io.Serializable;
import java.util.Date;

//import javax.validation.constraints.NotEmpty;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.usdt.common.enums.FileAccessLevel;

//import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author LG
 * @since 2023-01-03
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sys_file")
public class SysFile implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private Integer id;

    /**
     * 文件名
     */
    //@ApiModelProperty(value = "文件名称")
    @Schema(title = "文件名称")
    @NotEmpty(message = "文件名称不能为空")
    private String fileName;

    /**
     * 文件大小
     */
    //@ApiModelProperty(value = "文件大小")
    @Schema(title = "文件大小")
    @NotEmpty(message = "文件大小不能为空")
    private String fileSize;

    /**
     * Endpoint 表示 OSS 对外服务的访问域名
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String fileEndpoint;

    /**
     * 存储空间名称
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String fileBucket;

    /**
     * 文件的key
     */
    //@ApiModelProperty(value = "文件路径")
    @Schema(title = "文件路径")
    @NotEmpty(message = "文件路径不能为空")
    private String fileKey;

    /**
     * 文件类型
     */
    //@ApiModelProperty(value = "文件类型")
    @Schema(title = "文件类型")
    @NotEmpty(message = "文件类型不能为空")
    private String mimeType;

    /**
     * 图片高度
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String imageHeight;

    /**
     * 图片宽度
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String imageWidth;

    /**
     * 图片格式
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String imageFormat;

    /**
     * 创建日期
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private Date createDate;

    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String businessCode;

    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String appName;

    /**
     * 上传者id
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String uploaderId;

    /**
     * 访问级别(可选值:Private,Default,PublicRead,PublicReadWrite)
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private FileAccessLevel accessLevel;

    /**
     * 上传者名称
     */
    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String uploaderName;

    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private Boolean isDeleted;

    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String createUserId;

    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private Date createTime;

    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private String updateUserId;

    //@ApiModelProperty(hidden = true)
    @Schema(hidden = true)
    private Date updateTime;


}
